package com.xuecheng.content.common.constant;

import com.xuecheng.common.domain.code.ErrorCode;

/**
 * <p>内容管理议程信息类</p>
 *
 *      1.声明一个业务的枚举类并实现ErrorCode接口
 *          实现接口中的方法
 *      2.在枚举类中定义属性
 *          code
 *          desc
 *      3.构建出枚举类的构造方法
 *          给枚举类中的code和desc赋值
 *
 *      4.编写枚举异常信息
 *         规范：E_错误代码(错误代码，错误信息)
 *              错误代码：6位数字
 *                  前两位                       中间两位                     最后两位
 *                业务的名称：编号              业务下的模块名称：编号           由程序员自行定义
 *                   12                         00                            00或01
 *
 *      5.可以在类中应用枚举错误信息
 *          ContentErrorCode.E_120000.getCode()
 *          ContentErrorCode.E_120000.getDesc()
 *
 *  后四位错误代码由开发者开发中进行定义<br>
 *  内容管理服务前两位错误服务标识为：12(在 {@link ErrorCode} 中定义)
 *  模块错误代码定义如下：
 *  <ul>
 *    <li>课程基本--定义模块代码为： 00</li>
 *    <li>课程营销--定义模块代码为： 01</li>
 *    <li>课程发布--定义模块代码为： 02</li>
 *    <li>课程下线--定义模块代码为： 03</li>
 *    <li>课程计划--定义模块代码为： 04</li>
 *    <li>课程教师--定义模块代码为： 05</li>
 *  </ul>
 *
 *  枚举在java中是一个类的多例形式
 *      new ContentErrorCode(120000,"课程名称不能为空");
 *      new ContentErrorCode(120001,"课程大分类不能为空");
 */
public enum ContentErrorCode implements ErrorCode {


    E_120001(120001, "保存课程基本信息失败"),
    E_120002(120002, "保存课程基本信息时，课程分类的分类二级分类信息不能空"),
    E_120003(120003, "保存课程基本信息时，课程分类的分类三级分类信息不能空"),
    E_120004(120004, "保存课程基本信息时，课程名称不能空"),
    E_120005(120005, "保存课程基本信息时，学习模式不能为空"),
    E_120006(120006, "保存课程基本信息时，教学模式不能为空"),
    E_120007(120007, "保存课程基本信息时，课程等级不能为空"),
    E_120008(120008, "保存的课程内容已存在，无法保存"),
    E_120009(120009, "修改数据的ID值不能为空"),
    E_120010(120010, "修改数据不存在"),
    E_120011(120011, "修改课程数据已发布或审核通过,无法修改"),
    E_120012(120012, "删除课程数据中存在已发布或审核通过,无法删除"),
    E_120013(120013, "课程信息不存在"),
    E_120014(120014, "课程数据已发布或审核通过,无法操作"),
    E_120015(120015, "课程审核状态异常"),
    E_120016(120016, "审核的状态是能为：审核通过或审核未通过"),
    E_120017(120017, "操作课程数据失败"),
    E_120018(120018, "机构id值不能为空"),
    E_120019(120019, "课程使用人群描述不能为空"),
    E_120020(120020, "课程收费模式不能为空"),
    E_120021(120021, "课程数据异常"),



    E_120101(120101, "查询的课程营销信息不存在"),
    E_120102(120102, "要操作的课程营销信息不能为空"),
    E_120103(120103, "要操作的课程营销信息找不到对应的课程信息"),
    E_120104(120104, "课程营销信息中的收费标准不能为空"),
    E_120105(120105, "课程营销信息中的有效性不能为空"),
    E_120106(120106, "课程营销信息中的过期时间不能为空"),
    E_120107(120107, "课程营销操作失败"),
    E_120108(120108, "课程营销关联的课程已被关联"),
    E_120109(120109, "课程营销关联的课程信息不能为空"),


    E_120201(120201, "课程没有审核通过，无法发布"),
    E_120202(120202, "课程发布时发送事务消息失败"),
    E_120203(120203, "课程发布消息不存在"),
    E_120204(120204, "课程详情页发布失败"),




    E_120401(120401, "操作的课程计划信息不能为空"),
    E_120402(120402, "课程计划信息不存在，无法操作"),
    E_120403(120403, "操作的课程计划类型信息不能为空"),
    E_120404(120404, "课程计划没有关联课程信息"),
    E_120405(120405, "课程计划已经发布无法操作"),
    E_120406(120406, "课程计划关联的课程信息不一致，无法操作"),
    E_120407(120407, "操作课程计划信息失败"),
    E_120408(120408, "课程计划无父级信息，无法操作"),
    E_120409(120409, "课程计划信息还有子级信息，无法操作"),
    E_120410(120410, "课程计划不是第三级，无法关联媒资信息"),
    E_120411(120411, "课程计划和媒资关联失败"),
    E_120412(120412, "课程计划已经删除,无法操作"),
    E_120413(120413, "课程计划名称不能为空"),
    E_120414(120414, "课程计划已经关联媒资信息，无法删除"),
    E_120415(120415, "创建一级课程计划数据失败"),
    E_120416(120416, "获得父级数据失败"),
    E_120417(120417, "关联的媒资信息没有审核通过"),



    E_1200501(1200501, "课程教师信息操作失败"),
    E_1200502(1200502, "课程不能填写相同名称的教师信息"),
    E_1200503(1200503, "课程教师信息不存在"),

    E_1200601(1200601, "获得上传凭证失败，请稍后再试"),


    ;


    private int code;
    private String desc;

    ContentErrorCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getDesc() {
        return desc;
    }
}
